0

string_1\string_2タイトルごとに、次の要件を持つ文字列の後にバックスラッシュが続き、別の文字列が続くような形式の文字列を解析する必要があります。

  • string_1 と string_2 が存在する場合、それらを 2 つのトークンに分割しますstring_1\string_2
  • string_1 のみが存在する場合は、それを返します
  • \string_2が存在するが、バックスラッシュの後ろに何もない場合、何も一致しません。

これまでのところ、私はこれを思いつきました:

^([\w\s]*)((?!\\\).*)

しかし、string_1 の最後の文字は「漏れ」続け、バックスラッシュの直前で string_2 に移動します。

それを修正する方法はありますか?または他の代替正規表現はありますか?次の正規表現はリークに役立ちますが、3 番目の要件を破っています。

^([\w\s]*).((?!\\\).*)

この質問がローカライズされすぎていないことを確認するために、 say の前に文字列がある場合、これは latex のサブセットを解析するのに役立つことに注意してください\section{section title comes here {*}}

4

1 に答える 1

2

これはあなたが探している正規表現だと思います:

/^([^\\]+)(\\.+)?/

最初のグループは、少なくとも 1 文字の「非 \」であり、その後にオプションの「\」とその他が続きます。

于 2013-07-20T20:00:26.723 に答える