s1 = "abcfoodefbarghi"
と
s2 = "abcbardefooghi"
文字列 "foo"または "bar"のいずれかが最初に現れるときに2つになる
これはs.split(/regexp/)
で行うことができますが、この正規表現はどのようなものでしょうか?
s1 = "abcfoodefbarghi"
と
s2 = "abcbardefooghi"
文字列 "foo"または "bar"のいずれかが最初に現れるときに2つになる
これはs.split(/regexp/)
で行うことができますが、この正規表現はどのようなものでしょうか?
このように正規表現を使用しますREの
var match = s1.match(/^([\S\s]*?)(?:foo|bar)([\S\s]*)$/);
/* If foo or bar is found:
match[1] contains the first part
match[2] contains the second part */
は説明:
(foo|bar)
ある
[\S\s]*?
試合REの次の部分を一致させるだけで十分な文字を、 「foo」または「bar」のいずれか[\S\s]*
は、残りの文字と一致しますREの一部を囲む括弧は、グループ化された一致を参照できるようにグループを作成し、(?:)
は参照不可能なグループを作成します。
この作品、よく説明されています。最後に、**最後のオカレンスにマッチして分割文字列を取得する必要があったので、/ ^([\ S \ s] *)(foo | bar)([\ S \ s] *? )$/'。ありがとうございました。 –
str.replace(/foo|bar/,"\x034").split("\x034")
アイデアは、特別な(見えない)文字列の最初の出現を交換して、この文字列に対して分割されています。
この質問を見てみましょう。 [一度JavaScriptのスプリット文字列](http://stackoverflow.com/questions/2878703/split-string-once-in-javascript) –