模式在我的Python功能我想,如果提供的參數包含表示正則表達式(EX- r'^\D{2}$'
)的字符串採取一些行動。我怎樣才能檢查該字符串是否有像這樣的正則表達式?檢查字符串中包含的正則表達式
回答
試試這個,
import re
pattern=r'^\D{2}$'
string="Your String here"
import re
try:
re.compile(pattern)
is_valid = True
except re.error:
is_valid = False
if is_valid:
matchObj = re.search(pattern, string, flags=0)
if matchObj :
#do something
else:
#do something
問題說「包含代表正則表達式的字符串」。應該使用搜索,不匹配。 –
我認爲OP從外部源接收字符串''^ \ D {2} $'',並且想要確定它是否可以用作正則表達式。否則,您的代碼只會因不良模式而崩潰,而不會返回有效模式字符串的「True」和「False」。 – Kevin
您需要re
模塊。
import re
s = <some string>
p = <regex pattern>
if re.search(p, s):
# do something
感謝您的回答。但是可能有太多的正則表達式模式 – gliese581g
太多正則表達式模式?你什麼意思? –
在你的代碼,我必須事先知道哪些模式,我必須檢查字符串對 – gliese581g
試試這個:
import re
match_regex = re.search(r'^\D{2}$','somestring').group()
# do something with your matched string
也許試圖編譯字符串:
def is_regex(s):
try:
re.compile(s)
return True
except:
return False
它不這樣的事情拋出異常的搜索方法:re.compile(「世界你好」) – gliese581g
真實的,但不是一個錯誤的're.compile(「世界你好」 ).match('Hello World')。group(0)=='Hello World'。 –
如果您不希望「Hello World」被視爲有效,您需要定義接受哪些正則表達式子集。很明顯,這意味着你不需要整套的正則表達式。 –
- 1. 檢查字符串中包含正則表達式和無JS
- 2. 正則表達式字符串包含
- 3. 檢查字符串是否包含正則表達式匹配
- 4. 包含字符串網絡ADDRES Java正則表達式檢查
- 5. 檢查字符串包含從正則表達式
- 6. 正則表達式來檢查字符串包含空格和特殊字符
- 7. 正則表達式來檢查字符串是否包含指定字符
- 8. 正則表達式來檢查字符串包含特殊字符
- 9. 正則表達式包含字符串,不包含另一個
- 10. Python正則表達式檢查是否包含特定字符
- 11. 正則表達式包含不在列表中的字符串
- 12. $正則表達式來查找包含字符串
- 13. PHP正則表達式查找字符串包含多個值
- 14. 哪個正則表達式查找不包含子字符串的字符串?
- 15. 正則表達式 - 檢查字符串只包含一次模式
- 16. PHP正則表達式。檢查字符串是否僅包含字母
- 17. 正則表達式來檢查一個字符串只包含一個字
- 18. 如何查找字符串包含正則表達式的特殊字符與正則表達式
- 19. preg_replace_callback(正則表達式)如果字符串不包含字符
- 20. 字符串不能包含java正則表達式元字符
- 21. 正則表達式,如果字符串包含字符
- 22. 檢查字符串的一部分是否包含正則表達式
- 23. python - 檢查字符串包含有效的正則表達式python
- 24. 檢查一個大的字符串包含使用NSPredicate或正則表達式
- 25. 正則表達式的字符串不包含子串
- 26. 排除在正則表達式中包含字符串的URL
- 27. 正則表達式的字符串只包含小寫字母
- 28. C#正則表達式檢查模式中的字符串
- 29. 使用正則表達式檢查字符串中的數字
- 30. 正則表達式的表達式包含多餘的字符
因此,換句話說,你有一個字符串,並想知道是否可以使用它作爲正則表達式模式? – Kevin
@Kevin是的,正好 – gliese581g