import Foundation
let pattern = #"<bean id=.*processName"\s*value="([a-zA-Z0-9\.]*).*processVersion"\s*value="([0-9\.]*)".*<\/bean>"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
<bean id="AuthenticationServicePDCAdapter" class="br.com.bradesco.web.crur.service.data.pdc.authenticationservice.AuthenticationServicePDCAdapterImpl" parent="PDCAdapterAbstract" abstract="false" singleton="true" lazy-init="true" autowire="default" dependency-check="default"> <property name="group" value="INTRANET"/> <property name="description" value="Insert description here"/> <property name="processName" value="intranet.framework.logon"/> <property name="processVersion" value="1.0.9"/> <property name="adapterPackage" value="br.com.bradesco.web.crur.service.data.pdc"/> <property name="processProduct" value="Intranet"/> <property name="isLoginRequired" value="false"/> <property name="baseClassRequestName" value="LogonRequest"/> <property name="baseClassResponseName" value="LogonResponse"/> <property name="factoryId" value="factoryAdapter"/> <property name="factoryPackage" value="br.com.bradesco.web.crur.service.data.pdc"/> <property name="factoryClassName" value="FactoryAdapter"/> <property name="isNewAwbFrameworkVersion" value="true"/> <property name="pdcConnector" ref="${pdc.connector}"/> </bean>
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"$1-$2"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression