str_html_tag02
= '''<td rowspan="2" class="colC">
<p>Bランク</p>
</td>'''
上記のようなpythonの文字列の変数があるときに、
html要素のうちの タグの<の次にくる
要素名を取得するための正規表現を定義する際、
先頭の<を除き、
要素名は通常アルファベットで定義されているようですから、
任意のアルファベットの1個以上のもので構成されるのでしょうか?
↓
はい、その通りです。
HTMLのタグ名(要素名)は通常、
英字(`A-Z` または `a-z`)で始まり、
その後に英数字(`A-Z`, `a-z`, `0-9`)や
ハイフン(`-`)が続くことが許可されています。
ただし、一般的なHTMLタグは英字のみで始まることが多いです。
正規表現で `<` の次の要素名を取得するには、
以下のように定義できます。
```python
import re
pattern = r'<([a-zA-Z][a-zA-Z0-9-]*)'
str_html_tag02 =
'''<td rowspan="2" class="colC">
<p>Bランク</p></td>'''
match = re.search(pattern, str_html_tag02)
if match:
# 出力: td
print(match.group(1))
```
### 正規表現の説明:
- `<` の次に来る **要素名** を取得するために
`<([a-zA-Z][a-zA-Z0-9-]*)` を使用
- `[a-zA-Z]` → 要素名は英字で始まる
- `[a-zA-Z0-9-]*`
→ その後、英数字または `-`(ハイフン)が続く
- `re.search()` を使って最初に見つかったタグ名を取得
このパターンを使えば、
HTMLのタグ名(`td`, `p`, `div`, `span` など)
を適切に抽出できます。
コメント
コメントを投稿