【发布时间】:2021-12-22 13:06:03
【问题描述】:
我遇到了 javascript 中的正则表达式拆分问题。 这是我要拆分的文本。它是德语,但无关紧要,我们可以说它只是一个假人。
Gesamtwirtschaft, z. B. primärer, sekundärer, tertiärer Sektor, erwerbswirtschaftliche BetriebeEinstellungsgesprächTarifverträge (z. B. Entgelttarifvertrag, Manteltarifvertrag)EntgeltfortzahlungsgesetzBGB-KündigungBetriebsvereinbarungen bzw. Personalvertretung auf Grundlage des PersonalvertretungsgesetzesKündigungsschutzgesetzWirtschaftsorganisationenArbeitnehmervertretung, BetriebsratGeltungsbereichTarifverträge (z. B. Entgelttarifvertrag, Manteltarifvertrag)IT-Weiterbildung ergänzend zur Ausbildung in den IT-BerufenSozialabgaben: Krankenversicherung, Arbeitslosenversicherung, Rentenversicherung, PflegeversicherungLohnsteuer, KirchensteuerBundeselterngeld- und ElternzeitgesetzZiele von BetriebenZiele von BetriebenRentabilitätFusionKapitalgesellschaften, z. B. GmbH, AGMärkte und PreisbildungProduktpalette und MärkteVerjährungRechtsgeschäfteUnterschiedliche Lernorte, auf regionaler EbeneMöglichkeiten und Grenzen einer Existenzgründung, BusinessplanInternationale Spezialisierung, GlobalisierungMöglichkeiten und Grenzen der sozialen Marktwirtschaft
我使用这个正则表达式:/(?<=[a-z)])(?<![Gmb])(?=[A-Z])/,如果在大写字母或右括号后面紧跟着小写字母,则通过后向拆分它。如果大写字母后面有Gmb,则不会拆分。这是我通过这个拆分得到的数组:
"Array
(
[0] => Gesamtwirtschaft, z. B. primärer, sekundärer, tertiärer Sektor, erwerbswirtschaftliche Betriebe
[1] => Einstellungsgespräch
[2] => Tarifverträge (z. B. Entgelttarifvertrag, Manteltarifvertrag)
[3] => Entgeltfortzahlungsgesetz
[4] => BGB-Kündigung
[5] => Betriebsvereinbarungen bzw. Personalvertretung auf Grundlage des Personalvertretungsgesetzes
[6] => Kündigungsschutzgesetz
[7] => Wirtschaftsorganisationen
[8] => Arbeitnehmervertretung, Betriebsrat
[9] => Geltungsbereich
[10] => Tarifverträge (z. B. Entgelttarifvertrag, Manteltarifvertrag)
[11] => IT-Weiterbildung ergänzend zur Ausbildung in den IT-Berufen
[12] => Sozialabgaben: Krankenversicherung, Arbeitslosenversicherung, Rentenversicherung, Pflegeversicherung
[13] => Lohnsteuer, Kirchensteuer
[14] => Bundeselterngeld- und Elternzeitgesetz
[15] => Ziele von Betrieben
[16] => Ziele von Betrieben
[17] => Rentabilität
[18] => Fusion
[19] => Kapitalgesellschaften, z. B. GmbH, AGMärkte und Preisbildung
[20] => Produktpalette und Märkte
[21] => Verjährung
[22] => Rechtsgeschäfte
[23] => Unterschiedliche Lernorte, auf regionaler Ebene
[24] => Möglichkeiten und Grenzen einer Existenzgründung, Businessplan
[25] => Internationale Spezialisierung, Globalisierung
[26] => Möglichkeiten und Grenzen der sozialen Marktwirtschaft
)
"
所以我现在的问题是,在后面有一个 AG 后如何拆分 arrayitem 19。结果应该是这样的:
"Array
(
[0] => Gesamtwirtschaft, z. B. primärer, sekundärer, tertiärer Sektor, erwerbswirtschaftliche Betriebe
[1] => Einstellungsgespräch
[2] => Tarifverträge (z. B. Entgelttarifvertrag, Manteltarifvertrag)
[3] => Entgeltfortzahlungsgesetz
[4] => BGB-Kündigung
[5] => Betriebsvereinbarungen bzw. Personalvertretung auf Grundlage des Personalvertretungsgesetzes
[6] => Kündigungsschutzgesetz
[7] => Wirtschaftsorganisationen
[8] => Arbeitnehmervertretung, Betriebsrat
[9] => Geltungsbereich
[10] => Tarifverträge (z. B. Entgelttarifvertrag, Manteltarifvertrag)
[11] => IT-Weiterbildung ergänzend zur Ausbildung in den IT-Berufen
[12] => Sozialabgaben: Krankenversicherung, Arbeitslosenversicherung, Rentenversicherung, Pflegeversicherung
[13] => Lohnsteuer, Kirchensteuer
[14] => Bundeselterngeld- und Elternzeitgesetz
[15] => Ziele von Betrieben
[16] => Ziele von Betrieben
[17] => Rentabilität
[18] => Fusion
[19] => Kapitalgesellschaften, z. B. GmbH, AG
[20] => Märkte und Preisbildung
[21] => Produktpalette und Märkte
[22] => Verjährung
[23] => Rechtsgeschäfte
[24] => Unterschiedliche Lernorte, auf regionaler Ebene
[25] => Möglichkeiten und Grenzen einer Existenzgründung, Businessplan
[26] => Internationale Spezialisierung, Globalisierung
[27] => Möglichkeiten und Grenzen der sozialen Marktwirtschaft
)
"
我希望我确实描述了所有可以理解的内容,并希望得到答案!感谢您的宝贵时间!
【问题讨论】:
-
在 GMB 前瞻之后放置一个可选字符。
.?应该工作。 -
它不是有一个拉丁字符 ä,这在你的正则表达式规则中没有给出
-
您的意思是
(?<!Gmb)吗?如果大写字母后面有mGb会发生什么。 -
@Randy Casburn 在 GMB 前瞻之后不确定您的意思。 .?我试过 /(?
-
不,您应该使用
/(?<=[a-z)])(?<!Gmb)(?=[A-Z])/来解决字符类的问题。当有多个大写字母后跟一个大写字母 + 小写字母时,您还需要调整此表达式以说明您希望也匹配的事实。
标签: javascript regex split concatenation