簡體   English   中英

如何匹配一個字符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM