![](/img/trans.png)
[英]How to find a “piece” of word in a string with regex and using it in python?
[英]Find a word in a string python using regex or other methods
我試圖遍歷單詞數組,並檢查它們是否存在於字符串中。 我知道有很多方法可以做到這一點,例如使用re.search,但是我需要在某些詞之間有所區別(即Java與Javascript)
一個例子:
import re
s = 'Some types (python, c++, java, javascript) are examples of programming.'
words = ['python', 'java', 'c++', 'javascript', 'programming']
for w in words:
p = re.search(w, s)
print(p)
>><_sre.SRE_Match object; span=(12, 18), match='python'>
>><_sre.SRE_Match object; span=(20, 24), match='java'>
>><_sre.SRE_Match object; span=(20, 30), match='javascript'>
>><_sre.SRE_Match object; span=(48, 59), match='programming'>
上面的方法在一定程度上起作用,但是將Java與Javascript匹配。
編輯:這是我的解決方案
for w in words:
regexPart1 = r"\s"
regexPart2 = r"(?:!+|,|\.|\·|;|:|\(|\)|\"|\?+)?\s"
p = re.compile(regexPart1 + re.escape(w) + regexPart2 , re.IGNORECASE)
result = p.search(s)
您想在正則表達式上添加單詞邊界標記,例如用r'/bjavascript/b'
代替'javascript'
。 (另請注意, +
應該在c++
轉義)
另外,要匹配的單詞迭代缺乏潛在的編譯正則表達式效率。 最好將正則表達式合並為一個:
w = r'\b(?:python|java|c\+\+|javascript|programming)\b'
re.search(w,s)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.