如何在python中使用正则表达式将单个拆分字符拉到一起?

时间:2016-04-22 10:13:12

标签: python regex tokenize

对于一个标记化器,我的目标是将一个术语分开,这样我只能获得单词(长度> 1)。现在我还要覆盖单个字符,我想把所有跟在一起的单个字符拉到一起,如下所示:

var $hiddenInput = $('<input/>',{type:'hidden',id:ca.Case_Id,value:case_Id});
    $hiddenInput.appendTo('.#builderList'); 

我使用python这样匹配:

$('#data_form').formValidation({
...
   button: {
       selector: "#id_submit_btn",
       disabled: "disabled"
   }
....
});

当然我编译正则表达式因为我必须多次适应它。上述模式将返回['Q','S','C','总部'],而我期待['QSC','总部']。

1 个答案:

答案 0 :(得分:0)

没有得到我的评论/问题的答案,但假设可以在“加入的字符词”中包含空格,你可以试试这个正则表达式:

((?:(?<=\s|^)\w\.?\s(?!\w\w)|(?<=\s|^)\w\.?(?=\s))+|\S+)

测试

  • 一个字母,前面有一个空格或一行开头(正面后视)
  • 可选地后跟.
  • 然后是空格 - 后跟两个或多个字母(负面预测)

  • 一个字母,前面有一个空格或一行开头(正面后视)
  • 可选地后跟.
  • 后跟一个空格(正向前瞻)

重复此操作直到不匹配。

如果以上都不是

  • 一系列非空格字符

(注意!上面的术语字母实际上是正则表达式字符字符类 - 即ASCII字母,数字或下划线_。)

第一个测试用fins初始或中间单个字符组成一个单词。第二个是正常字之前的最后一个字符,以避免捕获最终空格。第三个测试是针对2个或更多字符的单词。我选择在这里测试非空格而不是字符,以便能够获取首字母缩略词,缩写等。例如。 Q&Ae.g.。它也捕捉和相似。

See an example at regex101 here.

希望这有帮助。

最后,如果绝对不能包含空格,那么就会看到其他方式,然后分两步完成。

此致