Respuestas:
Sí tu puedes.
Use la calculadora de campo con la siguiente expresión:
left( "Name", strpos( "Name" ,'-'))
La función strpos () devolverá la posición de índice del primer carácter '-' y la función left () "recorta" la cadena antes de esa posición.

Puede usar la calculadora de campo con la siguiente expresión:
string_to_array("Nombre", ' ')
La función string_to_array () divide la cadena en una matriz usando el delimitador proporcionado.
Si desea una posición de la matriz, puede agregar la posición y devolverá el valor. Me gusta esto:
string_to_array("Nombre", ' ')[2]
Posible solución mediante PyQGIS.
Supongamos que hay una capa de punto llamada "some_points"con su tabla de atributos, vea la imagen a continuación.
Continúe Plugins > Python Console > Show Editory pegue el script a continuación
from PyQt5.QtCore import QVariant
layer = iface.activeLayer()
if not layer.isValid():
print("Layer failed to load!")
layer_provider = layer.dataProvider()
layer_provider.addAttributes([QgsField("Test", QVariant.String)])
layer.updateFields()
features=layer.getFeatures()
layer.startEditing()
for f in features:
attrs = {2: f['info'].split('-')[0]}
layer_provider.changeAttributeValues({f.id(): attrs})
layer.commitChanges()
La salida se verá
Referencias
.split()función de Python ?