簡體   English   中英

正則表達式-僅當字符前后有空格時才對字符進行分割

[英]regex - split on a character only if there are spaces before and after

我只想在該字符前后有空格的情況下才拆分字符串。 在我的情況下,字符是破折號,即“-”

Opzione - AAAA-11

應該分成

Opzione   AAAA-11

而不是

Opzione AAAA 11

語言是python。

謝謝

您可以使用正則表達式來實現,但是使用split()join()來實現非正則表達式

str = 'Opzione - AAAA-11';
df = ' '.join(str.split(' - '))
print(df)

您可以使用環視

(?<=\s)-(?=\s)
  • (?<=\\s) ->向后看。 檢查前面的空間的條件。
  • - - >匹配-
  • (?=\\s) ->正向超前匹配以下空格

附帶說明 - \\s也將匹配\\r\\t\\n如果您只想考慮空間,可以這樣

(?<= )-(?= )

str="Opzione - AAAA-11"
str=re.sub('(\s([\S])\s[\S]?)','',str)

這個(\\s([\\S])\\s[\\S]?)表示兩個空格之間除了空格以外的任何東西,然后等於或不等於空格的任何東西,這樣您就可以像ghhg一樣進行匹配。

因此,兩個h都在兩個空格之間,但是當您僅與\\s([\\S])\\s匹配時,另一個h不會,而是由(\\s([\\S])\\s[\\S]?)都匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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