[英]How to match one character word?
如何僅匹配字符長度為1的單詞? 或者在執行匹配操作后是否必須檢查匹配的長度? 我的過濾器看起來像這樣:
sw = r'\w+,\s+([A-Za-z]){1}
所以它應該匹配
rs =re.match(sw,'Herb, A')
但不應該匹配
rs =re.match(sw,'Herb, Abc')
如果您使用\\b\\w\\b
,則只匹配一個字體類型的字符。 所以你的表達是
sw = r'\w+,\s+\w\b'
(因為\\w
前面至少有一個\\s
你不需要第一個\\b
)
驗證:
>>> sw = r'\w+,\s+\w\b'
>>> print re.match(sw,'Herb, A')
<_sre.SRE_Match object at 0xb7242058>
>>> print re.match(sw,'Herb, Abc')
None
您可以使用
(?<=\s|^)\p{L}(?=[\s,.!?]|$)
它將匹配由空格字符或字符串結尾開頭和后跟的單個字母。 前瞻性也略微增加了標點符號......這一切都取決於你的輸入數據。 你也可以對非字母進行預測,但這引出了一個問題,“a123”是否真的是一個單字母的單詞。 或者“我是”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.